package com.jinke.api.modules.third.shippo.model.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Data
public class CustomsDeclaration {


        @ApiModelProperty("货件的货物类型。值为“礼品”、“样品”、“退货和维修”、“\n" +
                "商业”、“个人物品”、“个人使用”")
        private String contentsType;
        @ApiModelProperty("货物中所含商品类型的说明。当 contentType 为“OTHER”且载体代码为 usps 时，需要此字符串。")
        private String otherDescribe;
        @ApiModelProperty("货物的 EEL/PFC 类型。对于大多数从美国发往加拿大的货件，适用“30.36” ；对于来自美国的大多数其他货件，“30.37(a)”适用。值为 '30.37(a)'、'30.37(h)'、'30.37(f)'、'30.36'")
        private String eelPfc;
        @ApiModelProperty("货件的 AES/ITN 参考。")
        private String aesItn;
        @ApiModelProperty("海关物品是国际货件包裹中的不同物品")
        private List<CustomsDeclarationItem> items;


    @Data
    public static class  CustomsDeclarationItem {
        @ApiModelProperty("您的物品的文字描述。")
        private String description;
        @ApiModelProperty("您发送的货件中该商品的数量。必须大于 0。")
        private Integer quantity;
        @ApiModelProperty("用于数量的单位（长度不能超过 3 个字符）。默认为“EA”。请参阅所有值的数量单位")
        private String quantityUnit;
        @ApiModelProperty("该物品的总重量，即数量*每件重量。")
        private BigDecimal weight;
        @ApiModelProperty("该物品的总重量，即数量*每件重量。")
        private BigDecimal weight2;
        @ApiModelProperty("用于重量的单位。值为'lb'、'kg'默认为'lb'")
        private String massUnit;
        @ApiModelProperty("该商品的总价值，即数量 * 每件商品的价值。货币为美元")
        private BigDecimal valueAmount;
        @ApiModelProperty("商品的原产国。例如：“US”或“DE”。所有接受的值都可以在ISO 官方网站上找到。")
        private String originCountry;
        @ApiModelProperty("商品的 HS 编码。请参阅附表 B 搜索引擎了解所有值")
        private String tariffNumber;
        @ApiModelProperty("仅适用于 ITN。有关所有 UOM 值，请参阅附表 B 搜索引擎")
        private String aesUnit;
    }
    @ApiModelProperty("您需要为您的国际货件提供清关证明")
    private List<CustomsDeclaration>  customsDeclarations;
}
